import { login, userInfo, userProfile } from '@/api/user'
import { resetRouter } from '@/router'
import { getToken, setToken } from '@/utils/auth'

export default {
  namespaced: true,
  state: () => {
    return {
      // 设置一个 token值    如果 有token值 就用token值 如果没有 就为空
      token: getToken() || '',
      // 用于存储用户信息
      UserInfo: {}
    }
  },
  mutations: {
    // 用户信息
    postUserInfo(state, newUserInfo) {
      state.UserInfo = newUserInfo
    },
    // 定义 mitations 去修改 token的值
    setToken(state, newToken) {
      // 将 token 保存到 state 里面
      state.token = newToken
      // token 持久化
      setToken(newToken)
    }
  },
  actions: {
    // data 接收 账号密码
    async  userlogin(context, data) {
      const res = await login(data)
      context.commit('setToken', res.data)
    },
    // 用户信息
    async getUserProfile(context) {
      const res = await userProfile()
      // 根据id 获取 头像信息
      const resInfo = await userInfo(res.data.userId)
      // console.log('resInfo', resInfo)
      const obj = { ...res.data, ...resInfo.data }
      // console.log('userProfile', res.data)
      // 保存到 sate里面
      context.commit('postUserInfo', obj)
      return res
    },
    // 清空 token 和 用户信息
    logout(context) {
      context.commit('setToken', '')
      context.commit('postUserInfo', {})
      // 重置
      resetRouter()
    }
  },
  getters: {

  }

}
